iT邦幫忙

2024 iThome 鐵人賽

DAY 19
1

颱風假救了我的鐵人賽,這樣應該是有機會繼續苟延殘喘,下週會不會棄賽就看我這周末能寫多少了。
hackMD原稿

雖然很多人都介紹過AlphaGo了,但我今天是用圍棋愛好者的角度切入去探討,加上電腦對局的知識跟大家探討不同角度的AlphaGo,希望可以帶大家看到不同面貌的AlphaGo。

AlphaGo

首先我們來看一下AlphaGo中很重要的Policy Network跟Value Network,這邊就不贅述他們是怎麼訓練出來的了,只說明功能。

  • Policy Network:主要作用是根據當前局面 s,預測每個可能走步 a 的機率。
  • Value Network:主要作用是對棋局進行評估,預測從當前局面 s 的勝率。
  • Rollout Policy Network:在模擬階段用來快速選點的,不再使用隨機模擬的方式,這樣模擬的對局品質會更高。

接著我們來看一下AlphaGo的MCTS有哪裡不一樣。

image

圖片擷取自Mastering the game of Go with deep
neural networks and tree search

這邊他的Simulation改叫做Evaluation,Backpropagation改叫Backup。

PUCT (Predictor + UCT)

PUCT 是 UCT 的一個改進,而在AlphaGo中又做了點小改變,通過 Policy network 輸出走步的機率 來輔助選擇。

具體的 PUCT 公式如下:

  • :表示局面 下選擇動作 的平均獲勝值。
  • :來自 Policy Network 的走步機率。
  • :表示當前局面 的總拜訪次數。
  • :表示該動作 的拜訪次數。
  • :探索與利用之間的平衡參數。

再來看一下Evaluation階段,AlphaGo 引入了 Value Network 來對葉節點進行評估。當到達搜索樹的葉節點後,Value Network將會對當前局面進行評估,輸出一個值 ,代表當前勝率。

當模擬結束後進到Backup,要更新每個節點的獲勝期望值 和拜訪次數 。根據模擬結果(勝、負或和局),將葉節點的評估值 回溯到根節點,更新所有沿途經過的節點的

這邊加入的 就是Value Network評估的勝率值。

我個人認為AlphaGo的精華就是通過強大的Policy Network在 MCTS 的Selection和Expansion階段,通過輸出每個走步的機率,幫助縮小搜索範圍,讓 AlphaGo 尋找到有潛力的走步。

AlphaGo Zero

AlphaGo Zero 不再依賴人類專家的棋譜數據,使用單一的神經網絡(結合Policy Network跟Value Network)進行自我對弈學習。
MCTS直接改為三階段Selection、Expansion & Evaluation、Backup,與 AlphaGo 的主要區別在於,AlphaGo Zero 在Evaluation階段直接依賴神經網絡進行葉節點評估,不再使用 Rollout Policy 來模擬對局,大幅加速了決策過程。

AlphaGo強在哪?

AlphaGo比起人類強在哪?
還記得這句話是黃士傑學長回到實驗室分享時,問大家的一個問題。

每個時代都會誕生不少的高手,但那種遠超當代其他棋手的天才,可能百年都不一定一遇,這裡我們也來分析一下,那些天才,比起同代的高手到底是強在哪裡?

本因坊道策

道策
這是我在因島的本因坊秀策紀念館拍攝的照片,蠻推薦喜歡圍棋的人可以去朝聖的。

棋聖道策,實力超越當代棋手非常多,因此有十三段的美名(最高是九段),發明了著名的圍棋理論手割分析,被稱為近代圍棋之祖,不拘泥於局部,利用棄子爭先,大局觀領先全世界。

以上都是對道策的評價,基本上沒什麼人提到說道策的計算力有多厲害,多是讚嘆道策對棋的理解高出其他人一大截,所謂對棋的理解就是大局觀,就是對全局形勢判斷的能力。

吳清源

image
圖片取自維基百科。

接著我們來看看昭和棋聖吳清源,在與本因坊秀哉的對局中下出了震驚棋壇的星、三三、天元開局,開創了新時代的布局,比起當代的人更注重中央的潛力,十番棋不敗,把當時全日本的高手打到降級。

對吳清源的評價大多也不是什麼戰鬥力非凡、計算精準之類的,而是他下出了前所未見的布局與定石,一樣是大局觀領先全世界。

申真諝

image
圖片來源

申真諝於2018年登上Go Ratings排行榜第一名,至今ELO分數突破3800分,長期與第二名差距達150~200分以上(第2與第10名差距通常不到50分)。

  • 2020年取得第一個世界冠軍,以76勝10敗的成績,創下年度勝率88.37%紀錄。
  • 2021年達成韓國國內棋賽大滿貫。
  • 2022年創下連續六次打進世界大賽決賽的紀錄,並且在國際大賽中對中國棋手取得24連勝的紀錄(2020~2022)。
  • 2023年達成生涯700勝,成為最年輕(23歲1個月22天)和用時最短(11年9個月22天)達成此項紀錄的棋手,上半年達成了29連勝、總戰績的47勝3敗的可怕成績,最後更創下首位年度破百勝的紀錄(111勝)。
  • 2024年達成農心盃主將6連勝、跨季16連勝紀錄,連續四年終結比賽。
    毫無爭議的當今第一人,每年都在締造新紀錄。

大家對申真諝的評價幾乎都是AI吻合度很高(現在很多人都是以AI來檢視棋手,吻合度愈高代表跟AI愈接近),在中盤局勢混沌不明時能夠比別人判斷得更清楚。
我們可以發現那些天才都有個共同點,那就是對棋的理解已經超出同代人不少了,在大局觀上展現出色的判斷能力。

許皓鋐

這邊要補充一下,去年亞運的圍棋項目,台灣第一人許皓鋐接連擊敗世界排名前三的朴廷桓、申真諝、柯潔,奪得金牌,你沒看錯,其中就包含了締造上面一堆可怕紀錄的申真諝。

image
圖片來源

賴均輔

還有今年的國手山脈盃,台灣的賴均輔,接連擊敗范廷鈺卞相壹、申真諝奪冠

image
圖片來源

這兩年台灣棋手在國際舞台上都有非常好的表現,可惜絕大多數台灣人都不知道這些消息,所以剛好利用這次鐵人賽花點篇幅來分享,讓大家能夠更認識這些台灣之光們,還有歡迎大家一起學圍棋XDD。

回到一開始的問題,那AlphaGo到底強在哪呢?
其實答案很明顯了,那就是大局觀、形勢判斷的能力,AlphaGo對李世石的那五盤棋,常常有一些顛覆當時人類想法的棋出現,反而不是在計算上讓大家驚豔,甚至當時還有人懷疑AlphaGo是不是不會打劫。

應該蠻多人的第一反應都是計算,覺得AlphaGo能夠計算的比人類更深遠,所以才會贏人類,但其實純粹用Policy輸出的走步,不經過計算直接下(就很像是人類所說的用棋感(第一感)下棋),就已經能達到台灣業餘7段的水準了,在大局觀上甚至是職業頂尖水準,這才是AlphaGo最令我驚訝的地方。
要說到計算力,雖然說人腦肯定算不贏電腦,但人腦的剪枝能力卻是遠遠大勝電腦,我們再看一下Day14中的征子範例,雖然要算出吃掉A點的黑子需要計算接近50步,人類幾乎都是一看就知道答案,但是對於電腦來說則是非常困難的問題。

征子範例

而且在局部戰鬥時,人類還是能下出很多AI沒有算到的妙手,只能說AI還是浪費很多計算資源在計算一些無用的分支上,這點是還遠遠不及人類的。
這邊附上我之前寫的棋評,是小申下出連AI也沒算到的「妙手」,會下棋的朋友可以看看。

結論

廣義上來說AlphaGo的計算力確實大於人類,但在計算這塊上人類還是有遠超電腦的剪枝能力的。
AlphaGo最強的地方就在於他的Policy Network,以前傳統的選點方式可能是根據一些數學公式,或是遊戲特性寫出來的規則,你都能解釋他是為什麼會選擇這個點,但偏偏AlphaGo你無法解釋,他居然能通過自我學習打敗人類幾百年來的經驗,AlphaGo不只開啟了大AI時代,也替本來很多棋力遇到瓶頸的遊戲開啟了另一條新的研究之路。

Reference


上一篇
Day18 MCTS優化
下一篇
Day20 AlphaZero General
系列文
猴子也能懂的電腦對局 : 30天打造自己的對局AI30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言